Middleware Design Patterns for reducers in React